package com.csair.seam.domain.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.csair.seam.domain.model.entity.Equip;
import com.csair.seam.domain.model.entity.EquipCategoryParam;
import com.csair.seam.domain.model.entity.EquipUserAlterNotice;
import com.csair.seam.domain.model.param.EquipParam;


public interface EquipMapper extends BaseMapper<Equip> {
	
	
	/**
	 * @description 根据用户编码获取设备列表
	 * @param userCode
	 * @return
	 */
	List<Equip> findListByUserCode(String userCode);
	
	/**
	 * @description 查询我的设备的总数和总价值
	 * @param userCode
	 * @return
	 */
	Equip findMyEquipInfo(String userCode);
	
	
	/**
	 * @description 根据设备编码获取设备详情
	 * @param equipCode
	 * @return
	 */
	Equip findEquipByCode(String equipCode);

	
	/**
	 * @description 设备列表分页查询
	 * @param page
	 * @param param
	 * @return
	 */
	Page<Equip> findEquipPage(Page<Equip> page,@Param("params") EquipParam param);
	
	/**
	 * @description 根据类别获取设备参数列表
	 * @param pkCategory
	 * @return
	 */
	List<EquipCategoryParam> findParamsByCategory(String pkCategory);
	
	/**
	 * @description 获取设备freeitem项
	 * @param pkEquip
	 * @return
	 */
	Map<String, Object> findFreeItemsByPK(String pkEquip);
	
	/**
	 * @description 查询设备使用人变动通知列表
	 * @return
	 */
	List<EquipUserAlterNotice> findEquipUserAlterNoticeList(String equipCode);
	
	/**
	 * @description 更新使用人变动通知状态为已通过
	 * @param id
	 * @return
	 */
	int updateEquipUserAlterNotice(Integer id);

	/**
	 * 查询有效到 EquipCode
	 * @return
	 */
	List<String> findAllEquipCode();

	/**
	 * 根据 EquipCode 查询 findEquipUserAlterNotice
	 * @param equipCode
	 * @return
	 */
	List<EquipUserAlterNotice> findEquipUserAlterNoticeByEquipCode(String equipCode);

	/**
	 * 根据 equipCode 更新EquipUserAlterNoticeByEquipCode
	 * @param equipCode
	 */
	void updateEquipUserAlterNoticeByEquipCode(String equipCode);
}
